package main

import (
	"errors"
	"fmt"
)

// 在其他语言比如python,java他们是用try catch包住函数来捕获错误的，如果加捕获不够精准，
// 异常会一直往上抛
// 而在c/c++,go中则是用函数返回值去处理异常的
// go语言的设计者采用防御性编程，他认为必须要处理这个err，是要写日志还是做特殊逻辑
// go语言的错误处理模式会有大量的: if err != nil
func A() (int, error) {
	return 0, errors.New("this is an error")
}
func main() {
	if _, err := A(); err != nil {
		fmt.Println(err)
	}

}
